package JavaEnum;

/**
 * Enum 类
 * java.lang.Enum类 是 Java 语言枚举类型的公共基类，我们使用enum关键字定义的枚举类，是隐式继承
 * 自Enum类的，下面我们来看一下Enum类的常用方法：
 * values()：返回枚举类型的对象数组。该方法可以很方便的遍历所有的枚举值；
 * valueOf()：可以把一个字符串转换为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”，如果不是，会抛出IllegalArguementException；
 * toString()：返回当前枚举类对象常量的名称。
 */

public class EnumDemo3 {

    public static void main(String[] args) {
        Sex male = Sex.MALE;
        System.out.println("调用 toString() 方法：");
        System.out.println(male.toString());

        System.out.println("调用 values() 方法：");
        Sex[] values = Sex.values();
        for (Sex value : values) {
            System.out.println(value);
        }

        System.out.println("调用 values() 方法：");
        Sex male1 = Sex.valueOf("MALE");
        Sex male2 = Sex.valueOf("F");
        System.out.println(male1);
        System.out.println(male2);
    }
}
/**
 * 使用 enum 关键字定义枚举类, 默认继承自 Enum 类
 */
enum Sex1 {
    // 1.提供当前枚举类的多个对象, 多个对象之间使用逗号分隔, 最后一个对象使用分号结尾
    MALE("男"),
    FEMALE("女"),
    UNKNOWN("保密");

    /**
     * 2.声明枚举类的属性
     */
    private final String sexName;

    /**
     * 3.编写构造方法, 为属性赋值
     */
    Sex1(String sexName) {
        this.sexName = sexName;
    }

    /**
     * 提供getter和setter方法
     */
    public String getSexName() {
        return sexName;
    }
}